// 哈希表

class Solution {
public:
    vector<int> intersect(vector<int>& nums1, vector<int>& nums2) {
        unordered_map<int, int> hashtable;
        for (int i = 0; i < nums1.size(); i++) {
            if (hashtable.find(nums1[i]) == hashtable.end()) hashtable[nums1[i]] = 1;
            else hashtable[nums1[i]]++;
        }

        vector<int> ret;
        for (auto& num: nums2) {
            if (hashtable.find(num) != hashtable.end()) {
                if (hashtable[num] > 0) {
                    ret.emplace_back(num);
                    hashtable[num]--;
                }
            }
        }
        return ret;
    }
};